[INFO] cloning repository https://github.com/suaviloquence/fake-newsstand
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/suaviloquence/fake-newsstand" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuaviloquence%2Ffake-newsstand", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuaviloquence%2Ffake-newsstand'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9458c4224180c569147ab4a07532406e7d368461
[INFO] testing suaviloquence/fake-newsstand against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsuaviloquence%2Ffake-newsstand" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/suaviloquence/fake-newsstand
[INFO] finished tweaking git repo https://github.com/suaviloquence/fake-newsstand
[INFO] tweaked toml for git repo https://github.com/suaviloquence/fake-newsstand written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/suaviloquence/fake-newsstand on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/suaviloquence/fake-newsstand already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8627dde903740beabb93115addcd1da59863e9cab2a19a923553dd79bf958118
[INFO] running `Command { std: "docker" "start" "-a" "8627dde903740beabb93115addcd1da59863e9cab2a19a923553dd79bf958118", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8627dde903740beabb93115addcd1da59863e9cab2a19a923553dd79bf958118", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8627dde903740beabb93115addcd1da59863e9cab2a19a923553dd79bf958118", kill_on_drop: false }`
[INFO] [stdout] 8627dde903740beabb93115addcd1da59863e9cab2a19a923553dd79bf958118
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4d5547cc3adf5177be55a7e5300b71e9fd6df49759c2e3b5679b85e9beb40dbd
[INFO] running `Command { std: "docker" "start" "-a" "4d5547cc3adf5177be55a7e5300b71e9fd6df49759c2e3b5679b85e9beb40dbd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling unicode-ident v1.0.1
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling once_cell v1.13.0
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling parking_lot_core v0.9.3
[INFO] [stderr]    Compiling pin-project-lite v0.2.9
[INFO] [stderr]    Compiling smallvec v1.9.0
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling itoa v1.0.2
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling serde_derive v1.0.138
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling tracing-core v0.1.28
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling serde v1.0.138
[INFO] [stderr]    Compiling openssl v0.10.40
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling http v0.2.8
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling native-tls v0.2.10
[INFO] [stderr]    Compiling httparse v1.7.1
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling hashbrown v0.12.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling futures-sink v0.3.21
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling slab v0.4.6
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling encoding_rs v0.8.31
[INFO] [stderr]    Compiling unicode-bidi v0.3.8
[INFO] [stderr]    Compiling tracing v0.1.35
[INFO] [stderr]    Compiling ryu v1.0.10
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling serde_json v1.0.82
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling socket2 v0.4.4
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling openssl-sys v0.9.74
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]    Compiling unicode-normalization v0.1.21
[INFO] [stderr]    Compiling http-body v0.4.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling ipnet v2.5.0
[INFO] [stderr]    Compiling mime v0.3.16
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]    Compiling cpufeatures v0.2.2
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling crypto-common v0.1.4
[INFO] [stderr]    Compiling block-buffer v0.10.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling digest v0.10.3
[INFO] [stderr]    Compiling sha1 v0.10.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling tokio-macros v1.8.0
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling tokio v1.19.2
[INFO] [stderr]    Compiling thiserror v1.0.31
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling tokio-util v0.7.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.0
[INFO] [stderr]    Compiling h2 v0.3.13
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_with v1.14.0
[INFO] [stderr]    Compiling hyper v0.14.20
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.11
[INFO] [stderr]    Compiling tumblr-api v0.1.0 (/opt/rustwide/workdir/tumblr-api)
[INFO] [stdout] error[E0432]: unresolved import `crate::AuthenticatedTumblrClient`
[INFO] [stdout]  --> tumblr-api/src/blog.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{post::Post, AuthenticatedTumblrClient};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ no `AuthenticatedTumblrClient` in the root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Client<Unauthenticated> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for struct `oauth::Request`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:193:22
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl SignRequest for Request {
[INFO] [stdout]     |                      ^^^^^^^ expected 1 generic argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 generic parameter: `S`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:49:19
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub(crate) struct Request<S: State> {
[INFO] [stdout]     |                   ^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl SignRequest for Request<S> {
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:206:6
[INFO] [stdout]     |
[INFO] [stdout] 206 | impl Client<Unauthenticated> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:241:6
[INFO] [stdout]     |
[INFO] [stdout] 241 | impl Client<Temporary> {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Client<Authenticated> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:74:73
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn new(oauth_consumer_key: String, oauth_client_secret: String) -> Self {
[INFO] [stdout]    |                                                                            ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:93:3
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self,
[INFO] [stdout]    |         ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 |     ) -> Result<Client<Authenticated>, (Self, OAuthCredentials)> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:207:40
[INFO] [stdout]     |
[INFO] [stdout] 207 |     async fn create_temporary_credentials(self) -> crate::Result<OAuthCredentials> {
[INFO] [stdout]     |                                           ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:231:3
[INFO] [stdout]     |
[INFO] [stdout] 231 |         self,
[INFO] [stdout]     |         ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:242:28
[INFO] [stdout]     |
[INFO] [stdout] 242 |     fn generate_callback_url(&self) -> String {
[INFO] [stdout]     |                               ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:259:3
[INFO] [stdout]     |
[INFO] [stdout] 259 |         self,
[INFO] [stdout]     |         ^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 |         &self,
[INFO] [stdout]    |          ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:67:48
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub(crate) async fn get<T: DeserializeOwned>(&self, path: &str) -> Result<T> {
[INFO] [stdout]    |                                                   ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 |         &self,
[INFO] [stdout]    |          ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:79:26
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub async fn blog_info(&self, blog_identifier: &str) -> Result<serde_json::Value> {
[INFO] [stdout]    |                             ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:84:25
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub async fn get_post(&self, post_id: u64) -> Result<serde_json::Value> {
[INFO] [stdout]    |                            ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:89:28
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub async fn create_post(&self, blog_name: &str, post: Post) -> Result<bool> {
[INFO] [stdout]    |                               ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/client.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 |     type Keys: std::ops::Deref<Target = [(&'static str, str)]>;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: within `(&'static str, str)`, the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: required because it appears within the type `(&'static str, str)`
[INFO] [stdout]    = note: slice and array elements must have `Sized` type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `client::Client<S>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:170:5
[INFO] [stdout]     |
[INFO] [stdout] 170 |             .client
[INFO] [stdout]     |              ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `client::Client<Unauthenticated>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:209:5
[INFO] [stdout]     |
[INFO] [stdout] 209 |             .client
[INFO] [stdout]     |              ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `client::Client<Unauthenticated>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 self.client
[INFO] [stdout]     |                      ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_consumer_key` on type `client::Client<Unauthenticated>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |                         &self.oauth_consumer_key,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_client_secret` on type `client::Client<Unauthenticated>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 216 |                         &self.oauth_client_secret,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:225:7
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let text = res.text().await?;
[INFO] [stdout]     |             ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:225:14
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let text = res.text().await?;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:225:30
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let text = res.text().await?;
[INFO] [stdout]     |                                    ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by an implicit `Sized` bound in `ControlFlow`
[INFO] [stdout]    --> /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/control_flow.rs:89:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:233:26
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let credentials = self.create_temporary_credentials().await?;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let credentials = self.create_temporary_credentials().await?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:233:21
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let credentials = self.create_temporary_credentials().await?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `try_into_other_state` exists for struct `client::Client<Unauthenticated>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:236:5
[INFO] [stdout]     |
[INFO] [stdout] 235 |           Ok(self
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 236 | |             .try_into_other_state(Temporary(credentials))
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^^^^ method cannot be called on `client::Client<Unauthenticated>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 |   pub struct Unauthenticated;
[INFO] [stdout]     |   -------------------------- doesn't satisfy `Unauthenticated: State`
[INFO] [stdout] ...
[INFO] [stdout]  33 |   pub struct Client<S: State> {
[INFO] [stdout]     |   --------------------------- method `try_into_other_state` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `Unauthenticated: State` was not satisfied
[INFO] [stdout]    --> tumblr-api/src/client.rs:39:9
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl<S: State> Client<S> {
[INFO] [stdout]     |         ^^^^^  ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         unsatisfied trait bound introduced here
[INFO] [stdout] note: the trait `State` must be implemented
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:235:3
[INFO] [stdout]     |
[INFO] [stdout] 235 |         Ok(self
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:235:3
[INFO] [stdout]     |
[INFO] [stdout] 235 |         Ok(self
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:235:3
[INFO] [stdout]     |
[INFO] [stdout] 235 | /         Ok(self
[INFO] [stdout] 236 | |             .try_into_other_state(Temporary(credentials))
[INFO] [stdout] 237 | |             .map_err(|(client, state)| (client, state.0)))
[INFO] [stdout]     | |__________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:235:3
[INFO] [stdout]     |
[INFO] [stdout] 235 | /         Ok(self
[INFO] [stdout] 236 | |             .try_into_other_state(Temporary(credentials))
[INFO] [stdout] 237 | |             .map_err(|(client, state)| (client, state.0)))
[INFO] [stdout]     | |__________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:232:7
[INFO] [stdout]     |
[INFO] [stdout] 232 |     ) -> crate::Result<Result<Client<Temporary>, (Self, OAuthCredentials)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:232:7
[INFO] [stdout]     |
[INFO] [stdout] 232 |     ) -> crate::Result<Result<Client<Temporary>, (Self, OAuthCredentials)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub struct Unauthenticated;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `client::Client<Temporary>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |             .client
[INFO] [stdout]     |              ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `client::Client<Temporary>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:266:10
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 self.client
[INFO] [stdout]     |                      ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_consumer_key` on type `client::Client<Temporary>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:270:13
[INFO] [stdout]     |
[INFO] [stdout] 270 |                         &self.oauth_consumer_key,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_client_secret` on type `client::Client<Temporary>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |                         &self.oauth_client_secret,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 | /                 self.client
[INFO] [stdout] 267 | |                     .post("https://www.tumblr.com/oauth/access_token")
[INFO] [stdout] 268 | |                     .build()?
[INFO] [stdout]     | |_____________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 | /                 self.client
[INFO] [stdout] 267 | |                     .post("https://www.tumblr.com/oauth/access_token")
[INFO] [stdout] 268 | |                     .build()?
[INFO] [stdout]     | |_____________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |           let res = self
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 264 | |             .client
[INFO] [stdout] 265 | |             .execute(
[INFO] [stdout] 266 | |                 self.client
[INFO] [stdout] ...   |
[INFO] [stdout] 277 | |             .await?;
[INFO] [stdout]     | |___________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |           let res = self
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 264 | |             .client
[INFO] [stdout] 265 | |             .execute(
[INFO] [stdout] 266 | |                 self.client
[INFO] [stdout] ...   |
[INFO] [stdout] 277 | |             .await?;
[INFO] [stdout]     | |___________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:49
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:49
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:49
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]     = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:65
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                                                                       ^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by an implicit `Sized` bound in `ControlFlow`
[INFO] [stdout]    --> /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/control_flow.rs:89:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:21
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:279:21
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let credentials = serde_urlencoded::from_str(&res.text().await?)?;
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `try_into_other_state` exists for struct `client::Client<Temporary>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 281 |           Ok(self
[INFO] [stdout]     |  ____________-
[INFO] [stdout] 282 | |             .try_into_other_state(Authenticated(credentials))
[INFO] [stdout]     | |             -^^^^^^^^^^^^^^^^^^^^ method cannot be called on `client::Client<Temporary>` due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 |   pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     |   -------------------- doesn't satisfy `Temporary: State`
[INFO] [stdout] ...
[INFO] [stdout]  33 |   pub struct Client<S: State> {
[INFO] [stdout]     |   --------------------------- method `try_into_other_state` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `Temporary: State` was not satisfied
[INFO] [stdout]    --> tumblr-api/src/client.rs:39:9
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl<S: State> Client<S> {
[INFO] [stdout]     |         ^^^^^  ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         unsatisfied trait bound introduced here
[INFO] [stdout] note: the trait `State` must be implemented
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:281:3
[INFO] [stdout]     |
[INFO] [stdout] 281 |         Ok(self
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:281:3
[INFO] [stdout]     |
[INFO] [stdout] 281 |         Ok(self
[INFO] [stdout]     |         ^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:281:3
[INFO] [stdout]     |
[INFO] [stdout] 281 | /         Ok(self
[INFO] [stdout] 282 | |             .try_into_other_state(Authenticated(credentials))
[INFO] [stdout] 283 | |             .map_err(|(client, state)| (client, state.0)))
[INFO] [stdout]     | |__________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:281:3
[INFO] [stdout]     |
[INFO] [stdout] 281 | /         Ok(self
[INFO] [stdout] 282 | |             .try_into_other_state(Authenticated(credentials))
[INFO] [stdout] 283 | |             .map_err(|(client, state)| (client, state.0)))
[INFO] [stdout]     | |__________________________________________________________^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:262:7
[INFO] [stdout]     |
[INFO] [stdout] 262 |     ) -> crate::Result<Result<Client<Authenticated>, (Self, OAuthCredentials)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]    --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Temporary: State` is not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:262:7
[INFO] [stdout]     |
[INFO] [stdout] 262 |     ) -> crate::Result<Result<Client<Authenticated>, (Self, OAuthCredentials)>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `State` is not implemented for `Temporary`
[INFO] [stdout]    --> tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]    --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]     |
[INFO] [stdout]  33 | pub struct Client<S: State> {
[INFO] [stdout]     |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let url: Url = format!("{}/{}", Self::API_BASE, path).parse()?;
[INFO] [stdout]    |                                         ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut req = self.client.request(method, url);
[INFO] [stdout]    |                            ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_consumer_key` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 |             &self.oauth_consumer_key,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_client_secret` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 |             &self.oauth_client_secret,
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `credentials` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |             Some(&self.credentials.oauth_token),
[INFO] [stdout]    |                        ^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `credentials` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |             Some(&self.credentials.oauth_token_secret),
[INFO] [stdout]    |                        ^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `client` on type `&client::Client<Authenticated>`
[INFO] [stdout]   --> tumblr-api/src/lib.rs:55:18
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let res = self.client.execute(req).await?;
[INFO] [stdout]    |                        ^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/lib.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let text = res.text().await?;
[INFO] [stdout]    |             ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/lib.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let text = res.text().await?;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/lib.rs:56:30
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let text = res.text().await?;
[INFO] [stdout]    |                                    ^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by an implicit `Sized` bound in `ControlFlow`
[INFO] [stdout]   --> /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/control_flow.rs:89:0
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 |         self.request(Method::GET, path, None).await
[INFO] [stdout]    |              ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 |         self.request(Method::POST, path, data).await
[INFO] [stdout]    |              ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 |         self.request(Method::GET, &format!("blog/{blog_identifier}/info"), None)
[INFO] [stdout]    |              ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 |         self.request(Method::GET, &format!("posts/{post_id}"), None)
[INFO] [stdout]    |              ^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Authenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/lib.rs:89:66
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub async fn create_post(&self, blog_name: &str, post: Post) -> Result<bool> {
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Authenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Authenticated(pub(crate) OAuthCredentials);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:75:3
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Self {
[INFO] [stdout]    |         ^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `client::Client`
[INFO] [stdout]   --> tumblr-api/src/client.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    |                      ^^^^^ required by this bound in `Client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 state: Unauthenticated,
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `ClientInner`
[INFO] [stdout]   --> tumblr-api/src/client.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ClientInner<S: State> {
[INFO] [stdout]    |                           ^^^^^ required by this bound in `ClientInner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:76:11
[INFO] [stdout]    |
[INFO] [stdout] 76 |             inner: Arc::new(ClientInner {
[INFO] [stdout]    |                    ^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `ClientInner`
[INFO] [stdout]   --> tumblr-api/src/client.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ClientInner<S: State> {
[INFO] [stdout]    |                           ^^^^^ required by this bound in `ClientInner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Unauthenticated: State` is not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:76:11
[INFO] [stdout]    |
[INFO] [stdout] 76 |               inner: Arc::new(ClientInner {
[INFO] [stdout]    |  ____________________^
[INFO] [stdout] 77 | |                 client: reqwest::Client::builder()
[INFO] [stdout] 78 | |                     .user_agent(USER_AGENT)
[INFO] [stdout] 79 | |                     .https_only(true)
[INFO] [stdout] ...  |
[INFO] [stdout] 84 | |                 state: Unauthenticated,
[INFO] [stdout] 85 | |             }),
[INFO] [stdout]    | |______________^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `State` is not implemented for `Unauthenticated`
[INFO] [stdout]   --> tumblr-api/src/client.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: this trait has no implementations, consider adding one
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: required by a bound in `ClientInner`
[INFO] [stdout]   --> tumblr-api/src/client.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ClientInner<S: State> {
[INFO] [stdout]    |                           ^^^^^ required by this bound in `ClientInner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `try_into_other_state` exists for struct `client::Client<Unauthenticated>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Unauthenticated;
[INFO] [stdout]    | -------------------------- doesn't satisfy `Unauthenticated: State`
[INFO] [stdout] ...
[INFO] [stdout] 33 | pub struct Client<S: State> {
[INFO] [stdout]    | --------------------------- method `try_into_other_state` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |         self.try_into_other_state(Authenticated(credentials))
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^ method cannot be called on `client::Client<Unauthenticated>` due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout] note: trait bound `Unauthenticated: State` was not satisfied
[INFO] [stdout]   --> tumblr-api/src/client.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl<S: State> Client<S> {
[INFO] [stdout]    |         ^^^^^  ---------
[INFO] [stdout]    |         |
[INFO] [stdout]    |         unsatisfied trait bound introduced here
[INFO] [stdout] note: the trait `State` must be implemented
[INFO] [stdout]   --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `method` found for struct `oauth::Request<S>` in the current scope
[INFO] [stdout]   --> tumblr-api/src/oauth.rs:75:21
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Request<S: State> {
[INFO] [stdout]    | ----------------------------------- method `method` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 75 |         let method = self.method().to_string().to_uppercase();
[INFO] [stdout]    |                           ^^^^^^ method not found in `oauth::Request<S>`
[INFO] [stdout]    |
[INFO] [stdout] help: one of the expressions' fields has a method of the same name
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let method = self.inner.method().to_string().to_uppercase();
[INFO] [stdout]    |                           ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `url` found for struct `oauth::Request<S>` in the current scope
[INFO] [stdout]   --> tumblr-api/src/oauth.rs:77:22
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct Request<S: State> {
[INFO] [stdout]    | ----------------------------------- method `url` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |         let mut url = self.url().clone();
[INFO] [stdout]    |                            ^^^ method not found in `oauth::Request<S>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `url`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `ResponseBuilderExt`
[INFO] [stdout] help: one of the expressions' fields has a method of the same name
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut url = self.inner.url().clone();
[INFO] [stdout]    |                            ++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/oauth.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 |             .map(|(k, v)| (oauth_encode(&k), oauth_encode(&v)))
[INFO] [stdout]    |                    ^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]   --> tumblr-api/src/oauth.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |             .map(|(k, v)| (oauth_encode(&k), oauth_encode(&v)))
[INFO] [stdout]    |                       ^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]    = note: all local variables must have a statically known size
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_consumer_key` on type `client::Client<S>`
[INFO] [stdout]   --> tumblr-api/src/oauth.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 self.client.oauth_consumer_key.as_str(),
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `oauth_client_secret` on type `client::Client<S>`
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:140:30
[INFO] [stdout]     |
[INFO] [stdout] 140 |             oauth_encode(&self.client.oauth_client_secret),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^ unknown field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `headers_mut` found for struct `oauth::Request<S>` in the current scope
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout]  49 | pub(crate) struct Request<S: State> {
[INFO] [stdout]     | ----------------------------------- method `headers_mut` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 153 |         self.headers_mut().append(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a method of the same name
[INFO] [stdout]     |
[INFO] [stdout] 153 |         self.inner.headers_mut().append(
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: there is a method `as_mut` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 153 -         self.headers_mut().append(
[INFO] [stdout] 153 +         self.as_mut().append(
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `state` exists for reference `&client::Client<Temporary>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tumblr-api/src/oauth.rs:245:10
[INFO] [stdout]     |
[INFO] [stdout] 245 |             &self.state().0.oauth_token
[INFO] [stdout]     |                   ^^^^^ method cannot be called on `&client::Client<Temporary>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: tumblr-api/src/client.rs:22:1
[INFO] [stdout]     |
[INFO] [stdout]  22 | pub struct Temporary(pub(crate) OAuthCredentials);
[INFO] [stdout]     | -------------------- doesn't satisfy `Temporary: State`
[INFO] [stdout]     |
[INFO] [stdout] note: trait bound `Temporary: State` was not satisfied
[INFO] [stdout]    --> tumblr-api/src/client.rs:39:9
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl<S: State> Client<S> {
[INFO] [stdout]     |         ^^^^^  ---------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         unsatisfied trait bound introduced here
[INFO] [stdout] note: the trait `State` must be implemented
[INFO] [stdout]    --> tumblr-api/src/client.rs:9:1
[INFO] [stdout]     |
[INFO] [stdout]   9 | pub trait State: sealed::ClientStateSealed {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tags`
[INFO] [stdout]   --> tumblr-api/src/blog.rs:56:3
[INFO] [stdout]    |
[INFO] [stdout] 56 |         tags: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_tags`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> tumblr-api/src/blog.rs:57:3
[INFO] [stdout]    |
[INFO] [stdout] 57 |         offset: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `before`
[INFO] [stdout]   --> tumblr-api/src/blog.rs:58:3
[INFO] [stdout]    |
[INFO] [stdout] 58 |         before: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0596]: cannot borrow data in an `Arc` as mutable
[INFO] [stdout]   --> tumblr-api/src/client.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 |         &mut self.inner.state
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
[INFO] [stdout]    |
[INFO] [stdout]    = help: trait `DerefMut` is required to modify through a dereference, but it is not implemented for `Arc<ClientInner<S>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0277, E0432, E0596, E0599, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `tumblr-api` (lib) due to 88 previous errors; 3 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "4d5547cc3adf5177be55a7e5300b71e9fd6df49759c2e3b5679b85e9beb40dbd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d5547cc3adf5177be55a7e5300b71e9fd6df49759c2e3b5679b85e9beb40dbd", kill_on_drop: false }`
[INFO] [stdout] 4d5547cc3adf5177be55a7e5300b71e9fd6df49759c2e3b5679b85e9beb40dbd
